package com.improvess.rna.som;

import Jama.Matrix;

public class NeuronioPb extends Neuronio {

	private Matrix media;
	private Matrix covariancia;
	private double[] probabilidadesPosteriori;
	private double sigmaVizinhanca;
	private Matrix[] elementosTreinamentoAssociado;

	public NeuronioPb(int posicaoX, int posicaoY, double sigmaVizinhanca) {
		super(posicaoX, posicaoY);
		this.sigmaVizinhanca = sigmaVizinhanca;
	}

	public void setProbabilidadesPosteriori(double[] probabilidadesPosteriori) {
		this.probabilidadesPosteriori = probabilidadesPosteriori;
	}

	public double[] getProbabilidadesPosteriori() {
		return probabilidadesPosteriori;
	}

	public void setMedia(Matrix media) {
		this.media = media;
	}

	public Matrix getMedia() {
		return media;
	}

	public void setCovariancia(Matrix covariancia) {
		this.covariancia = covariancia;
	}

	public Matrix getCovariancia() {
		return covariancia;
	}

	public NeuronioPb clone() {
		NeuronioPb neuronioPb = new NeuronioPb(this.getCoordenada()
				.getPosicaoX(), this.getCoordenada().getPosicaoY(), this.getSigmaVizinhanca());
		neuronioPb.setCovariancia(this.getCovariancia());
		neuronioPb.setMedia(this.getMedia());
		neuronioPb.setProbabilidadesPosteriori(getProbabilidadesPosteriori());
		return neuronioPb;
	}

	public void setElementosTreinamentoAssociado(
			Matrix[] elementosTreinamentoAssociado) {
		this.elementosTreinamentoAssociado = elementosTreinamentoAssociado;
	}

	public Matrix[] getElementosTreinamentoAssociado() {
		return elementosTreinamentoAssociado;
	}

	public void setSigmaVizinhanca(double sigmaVizinhanca) {
		this.sigmaVizinhanca = sigmaVizinhanca;
	}

	public double getSigmaVizinhanca() {
		return sigmaVizinhanca;
	}
}
